package cl.mt.proxy;

import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

import cl.mt.data.DataParametros;
import cl.mt.dto.DTOParametros;


public class ProxyParametros implements Serializable {

	private static final long serialVersionUID = 1L;
	private transient Logger log = LogManager.getLogger(ProxyParametros.class.getName());

	private static ProxyParametros instance = null;
	private static Collection lista = null;

	public ProxyParametros() {
	}

	public static ProxyParametros getInstance() {
		if (instance == null) {
			instance = new ProxyParametros();
		}
		return instance;
	}

	public DTOParametros getById(Integer id) {
		if (id == null)
			return null;
		if (lista == null)
			findAll();

		if (lista != null)
			for (Iterator it = lista.iterator(); it.hasNext();) {
				DTOParametros dto = (DTOParametros) it.next();
				if (id.equals(dto.getId()))
					return dto;
			}

		return null;
	}

	public DTOParametros findParameter(String parametro) {
		DataParametros dao = new DataParametros();
		log.debug("Cargando parametro en particular");
		return dao.findByPrimaryParameter(parametro);
		
	}
	
	public int addVisitaContador(DTOParametros dto) {
		DataParametros dao = new DataParametros();
		log.debug("agregando vositas al contador");
		
		
		return dao.updateContador(dto);
		
	}
	
	private void findAll() {
		DataParametros dao = new DataParametros();
		lista = dao.findAll();
		log.debug("Cargando Todos los Registros");
	}

	public void refresh() {
		lista = null;
		log.debug("Refresh Proxy");
	}

	public Collection getLista() {
		if (lista == null)
			findAll();
		return lista;
	}
}
